# Project:   Utils


# Toolflags:
CCflags = -c -depend !Depend -throwback -IC:
Linkflags = -o $@
ObjAsmflags = -depend !Depend -ThrowBack -Stamp -quit -CloseExec
CMHGflags = 
LibFileflags = -c -o $@
Squeezeflags = -o $@
AAsmflags = -depend !Depend -quit -CloseExec -To $@ -From


# Final targets:
@.Utils:   @.o.Alloca @.o.Bag @.o.Bitset @.o.Chdir @.o.Coroutines @.o.Deque \
        @.o.Dir @.o.Dirscan @.o.Efopen @.o.Emalloc @.o.Filelen @.o.Filetime @.o.Filetype \
        @.o.Filter @.o.Frename @.o.Getwd @.o.Isatty @.o.Map @.o.Message @.o.Mktemp @.o.OsCmd \
        @.o.Panic @.o.Popen @.o.Queue @.o.Random @.o.Ring @.o.Set @.o.Stack @.o.Stat \
        @.o.Strcchr @.o.Strdup @.o.Strlcmp @.o.Strlower @.o.Strndup @.o.Strnlcmp @.o.Strnpcpy \
        @.o.Strnucmp @.o.Strpcpy @.o.Strucmp @.o.Strupper @.o.Time @.o.Touch @.o.Unexec @.o.Regex \
        @.o.Getopt @.o.Getopt1 @.o.ProfileC @.o.ProfileT @.o.Caller @.o.ProgLimit @.o.Vars \
        @.o.ProfileAsm @.o.Swi @.o.Fcrypt 
        LibFile $(LibFileflags) @.o.Alloca @.o.Bag @.o.Bitset @.o.Chdir \
        @.o.Coroutines @.o.Deque @.o.Dir @.o.Dirscan @.o.Efopen @.o.Emalloc @.o.Filelen @.o.Filetime \
        @.o.Filetype @.o.Filter @.o.Frename @.o.Getwd @.o.Isatty @.o.Map @.o.Message @.o.Mktemp \
        @.o.OsCmd @.o.Panic @.o.Popen @.o.Queue @.o.Random @.o.Ring @.o.Set @.o.Stack @.o.Stat \
        @.o.Strcchr @.o.Strdup @.o.Strlcmp @.o.Strlower @.o.Strndup @.o.Strnlcmp @.o.Strnpcpy \
        @.o.Strnucmp @.o.Strpcpy @.o.Strucmp @.o.Strupper @.o.Time @.o.Touch @.o.Unexec @.o.Regex \
        @.o.Getopt @.o.Getopt1 @.o.ProfileC @.o.ProfileT @.o.Caller @.o.ProgLimit @.o.Vars \
        @.o.ProfileAsm @.o.Swi @.o.Fcrypt 


# User-editable dependencies:
BIN = $.Lib
HDR = $.CLib

install: @.Utils
        Cdir $(HDR).H
        Cdir $(HDR).Sys
        Cdir $(HDR).Sys.H
        Copy @.H.* $(HDR).H.* FQ~C
        Copy @.Sys.H.* $(HDR).Sys.H.* FQ~C
        Copy @.Getopt.H.Getopt $(HDR).H.Getopt FQ~C
        Copy @.Regex.H.Regex $(HDR).H.Regex FQ~C
        Copy @.Profile.H.Profile $(HDR).H.Profile FQ~C
        Copy @.Utils $(BIN).Utils FQ~C

clean:
        Wipe @.O.* F~C

clobber: clean
        Remove @.Utils

# Static dependencies:
@.o.Alloca:   @.C.Alloca
        cc $(ccflags) -o @.o.Alloca @.C.Alloca 
@.o.Bag:   @.C.Bag
        cc $(ccflags) -o @.o.Bag @.C.Bag 
@.o.Bitset:   @.C.Bitset
        cc $(ccflags) -o @.o.Bitset @.C.Bitset 
@.o.Chdir:   @.C.Chdir
        cc $(ccflags) -o @.o.Chdir @.C.Chdir 
@.o.Coroutines:   @.C.Coroutines
        cc $(ccflags) -o @.o.Coroutines @.C.Coroutines 
@.o.Deque:   @.C.Deque
        cc $(ccflags) -o @.o.Deque @.C.Deque 
@.o.Dir:   @.C.Dir
        cc $(ccflags) -o @.o.Dir @.C.Dir 
@.o.Dirscan:   @.C.Dirscan
        cc $(ccflags) -o @.o.Dirscan @.C.Dirscan 
@.o.Efopen:   @.C.Efopen
        cc $(ccflags) -o @.o.Efopen @.C.Efopen 
@.o.Emalloc:   @.C.Emalloc
        cc $(ccflags) -o @.o.Emalloc @.C.Emalloc 
@.o.Filelen:   @.C.Filelen
        cc $(ccflags) -o @.o.Filelen @.C.Filelen 
@.o.Filetime:   @.C.Filetime
        cc $(ccflags) -o @.o.Filetime @.C.Filetime 
@.o.Filetype:   @.C.Filetype
        cc $(ccflags) -o @.o.Filetype @.C.Filetype 
@.o.Filter:   @.C.Filter
        cc $(ccflags) -o @.o.Filter @.C.Filter 
@.o.Frename:   @.C.Frename
        cc $(ccflags) -o @.o.Frename @.C.Frename 
@.o.Getwd:   @.C.Getwd
        cc $(ccflags) -o @.o.Getwd @.C.Getwd 
@.o.Isatty:   @.C.Isatty
        cc $(ccflags) -o @.o.Isatty @.C.Isatty 
@.o.Map:   @.C.Map
        cc $(ccflags) -o @.o.Map @.C.Map 
@.o.Message:   @.C.Message
        cc $(ccflags) -o @.o.Message @.C.Message 
@.o.Mktemp:   @.C.Mktemp
        cc $(ccflags) -o @.o.Mktemp @.C.Mktemp 
@.o.OsCmd:   @.C.OsCmd
        cc $(ccflags) -o @.o.OsCmd @.C.OsCmd 
@.o.Panic:   @.C.Panic
        cc $(ccflags) -o @.o.Panic @.C.Panic 
@.o.Popen:   @.C.Popen
        cc $(ccflags) -o @.o.Popen @.C.Popen 
@.o.Queue:   @.C.Queue
        cc $(ccflags) -o @.o.Queue @.C.Queue 
@.o.Random:   @.C.Random
        cc $(ccflags) -o @.o.Random @.C.Random 
@.o.Ring:   @.C.Ring
        cc $(ccflags) -o @.o.Ring @.C.Ring 
@.o.Set:   @.C.Set
        cc $(ccflags) -o @.o.Set @.C.Set 
@.o.Stack:   @.C.Stack
        cc $(ccflags) -o @.o.Stack @.C.Stack 
@.o.Stat:   @.C.Stat
        cc $(ccflags) -o @.o.Stat @.C.Stat 
@.o.Strcchr:   @.C.Strcchr
        cc $(ccflags) -o @.o.Strcchr @.C.Strcchr 
@.o.Strdup:   @.C.Strdup
        cc $(ccflags) -o @.o.Strdup @.C.Strdup 
@.o.Strlcmp:   @.C.Strlcmp
        cc $(ccflags) -o @.o.Strlcmp @.C.Strlcmp 
@.o.Strlower:   @.C.Strlower
        cc $(ccflags) -o @.o.Strlower @.C.Strlower 
@.o.Strndup:   @.C.Strndup
        cc $(ccflags) -o @.o.Strndup @.C.Strndup 
@.o.Strnlcmp:   @.C.Strnlcmp
        cc $(ccflags) -o @.o.Strnlcmp @.C.Strnlcmp 
@.o.Strnpcpy:   @.C.Strnpcpy
        cc $(ccflags) -o @.o.Strnpcpy @.C.Strnpcpy 
@.o.Strnucmp:   @.C.Strnucmp
        cc $(ccflags) -o @.o.Strnucmp @.C.Strnucmp 
@.o.Strpcpy:   @.C.Strpcpy
        cc $(ccflags) -o @.o.Strpcpy @.C.Strpcpy 
@.o.Strucmp:   @.C.Strucmp
        cc $(ccflags) -o @.o.Strucmp @.C.Strucmp 
@.o.Strupper:   @.C.Strupper
        cc $(ccflags) -o @.o.Strupper @.C.Strupper 
@.o.Time:   @.C.Time
        cc $(ccflags) -o @.o.Time @.C.Time 
@.o.Touch:   @.C.Touch
        cc $(ccflags) -o @.o.Touch @.C.Touch 
@.o.Unexec:   @.C.Unexec
        cc $(ccflags) -o @.o.Unexec @.C.Unexec 
@.o.Regex:   @.Regex.C.Regex
        cc $(ccflags) -o @.o.Regex @.Regex.C.Regex 
@.o.Getopt:   @.Getopt.C.Getopt
        cc $(ccflags) -o @.o.Getopt @.Getopt.C.Getopt 
@.o.Getopt1:   @.Getopt.C.Getopt1
        cc $(ccflags) -o @.o.Getopt1 @.Getopt.C.Getopt1 
@.o.ProfileC:   @.Profile.C.ProfileC
        cc $(ccflags) -o @.o.ProfileC @.Profile.C.ProfileC 
@.o.ProfileT:   @.Profile.C.ProfileT
        cc $(ccflags) -o @.o.ProfileT @.Profile.C.ProfileT 
@.o.Caller:   @.S.Caller
        objasm $(objasmflags) -from @.S.Caller -to @.o.Caller
@.o.ProgLimit:   @.S.ProgLimit
        objasm $(objasmflags) -from @.S.ProgLimit -to @.o.ProgLimit
@.o.Vars:   @.S.Vars
        objasm $(objasmflags) -from @.S.Vars -to @.o.Vars
@.o.ProfileAsm:   @.Profile.S.ProfileAsm
        objasm $(objasmflags) -from @.Profile.S.ProfileAsm -to @.o.ProfileAsm
@.o.Swi:   @.S.Swi
        objasm $(objasmflags) -from @.S.Swi -to @.o.Swi
@.o.Fcrypt:   @.C.Fcrypt
        cc $(ccflags) -o @.o.Fcrypt @.C.Fcrypt 


# Dynamic dependencies:
o.Fatal:	C.Fatal
o.Fatal:	h.utils
o.Strcchr:	C.Strcchr
o.Strcchr:	h.utils
o.Strdup:	C.Strdup
o.Strdup:	h.utils
o.Strlcmp:	C.Strlcmp
o.Strlcmp:	h.utils
o.Strlower:	C.Strlower
o.Strlower:	h.utils
o.Strndup:	C.Strndup
o.Strndup:	h.utils
o.Strnlcmp:	C.Strnlcmp
o.Strnlcmp:	h.utils
o.Strnpcpy:	C.Strnpcpy
o.Strnpcpy:	h.utils
o.Strnucmp:	C.Strnucmp
o.Strnucmp:	h.utils
o.Strpcpy:	C.Strpcpy
o.Strpcpy:	h.utils
o.Strucmp:	C.Strucmp
o.Strucmp:	h.utils
o.Strupper:	C.Strupper
o.Strupper:	h.utils
o.Time:	C.Time
o.Time:	C:h.kernel
o.Time:	C:h.swis
o.Time:	sys.h.time
o.Touch:	C.Touch
o.Touch:	C:h.kernel
o.Touch:	h.utils
o.Unexec:	C.Unexec
o.Unexec:	C:h.kernel
o.Unexec:	h.unexec
o.Getopt:	Getopt.C.Getopt
o.Getopt:	Getopt.h.getopt
o.Getopt1:	Getopt.C.Getopt1
o.Getopt1:	Getopt.h.getopt
o.ProfileC:	Profile.C.ProfileC
o.ProfileC:	Profile.h.Profile
o.ProfileT:	Profile.C.ProfileT
o.ProfileT:	C:h.swis
o.ProfileT:	C:h.kernel
o.ProfileT:	Profile.h.ProfileAsm
o.ProfileT:	Profile.h.Profile
o.Alloca:	C.Alloca
o.Alloca:	h.utils
o.Bag:	C.Bag
o.Bag:	h.bag
o.Bitset:	C.Bitset
o.Bitset:	h.bitset
o.Chdir:	C.Chdir
o.Chdir:	C:h.kernel
o.Chdir:	h.utils
o.Coroutines:	C.Coroutines
o.Coroutines:	C:h.kernel
o.Coroutines:	h.utils
o.Deque:	C.Deque
o.Deque:	h.deque
o.Dir:	C.Dir
o.Dir:	C:h.kernel
o.Dir:	C:h.swis
o.Dir:	sys.h.dir
o.Dirscan:	C.Dirscan
o.Dirscan:	C:h.kernel
o.Dirscan:	C:h.swis
o.Dirscan:	h.utils
o.Efopen:	C.Efopen
o.Efopen:	h.utils
o.Emalloc:	C.Emalloc
o.Emalloc:	h.utils
o.Filelen:	C.Filelen
o.Filelen:	C:h.kernel
o.Filelen:	h.utils
o.Filetime:	C.Filetime
o.Filetime:	C:h.kernel
o.Filetime:	h.utils
o.Filetype:	C.Filetype
o.Filetype:	C:h.kernel
o.Filetype:	h.utils
o.Filter:	C.Filter
o.Filter:	C:h.kernel
o.Filter:	h.utils
o.Filter:	h.filter
o.Frename:	C.Frename
o.Frename:	C:h.kernel
o.Frename:	h.utils
o.Getwd:	C.Getwd
o.Getwd:	C:h.kernel
o.Getwd:	C:h.swis
o.Getwd:	h.utils
o.Isatty:	C.Isatty
o.Isatty:	C:h.kernel
o.Map:	C.Map
o.Map:	h.map
o.Message:	C.Message
o.Message:	h.utils
o.Mktemp:	C.Mktemp
o.Mktemp:	C:h.kernel
o.Mktemp:	C:h.swis
o.Mktemp:	h.utils
o.OsCmd:	C.OsCmd
o.Panic:	C.Panic
o.Panic:	h.utils
o.Popen:	C.Popen
o.Popen:	C:h.kernel
o.Popen:	h.utils
o.Queue:	C.Queue
o.Queue:	h.queue
o.Random:	C.Random
o.Random:	h.utils
o.Ring:	C.Ring
o.Ring:	h.ring
o.Set:	C.Set
o.Set:	h.set
o.Stack:	C.Stack
o.Stack:	h.stack
o.Stat:	C.Stat
o.Stat:	C:h.kernel
o.Stat:	sys.h.time
o.Stat:	sys.h.stat
o.Regex:	Regex.C.Regex
o.Regex:	Regex.h.regex
